ديف أوبس

تثبيت HHVM مع Nginx

تثبيت HHVM وضبطه للعمل مع خادم Nginx على نظام أوبنتو 14.04

في عالم تطوير الويب، يُعد الأداء والسرعة من العوامل الحاسمة التي تحدد جودة الخدمة وتجربة المستخدم. من التقنيات التي حققت تطورًا ملحوظًا في هذا المجال هو محرك HHVM (HipHop Virtual Machine) الذي طورته شركة فيسبوك لتحسين أداء تطبيقات PHP من خلال تحويل الشيفرة إلى شفرة آلة تعمل بسرعة أعلى. يُعتبر HHVM بديلاً متقدمًا لمحرك PHP التقليدي، حيث يحقق تسريعًا كبيرًا في تنفيذ صفحات الويب وتطبيقات الخوادم.

تتناول هذه المقالة بشكل مفصل كيفية تثبيت HHVM وضبطه للعمل جنبًا إلى جنب مع خادم Nginx على نظام أوبنتو 14.04، مع التركيز على الخطوات الدقيقة، الإعدادات المناسبة، وتحسين الأداء.


مقدمة عن HHVM

HHVM هو محرك تنفيذ للغة PHP يعتمد على تقنية Just-In-Time (JIT) compilation، أي الترجمة الفورية لشيفرة PHP إلى شفرة آلة أثناء التشغيل، مما يسمح بتحسين كبير في سرعة المعالجة وتقليل زمن استجابة الخادم. تم تصميمه لتشغيل تطبيقات PHP بكفاءة عالية، مع دعم ممتاز للغة Hack التي قدمتها فيسبوك لتطوير تطبيقات أكثر أمانًا وأداءً.


متطلبات النظام الأساسية

قبل البدء في عملية التثبيت، يجب التأكد من أن نظام أوبنتو 14.04 محدث ويحتوي على الحزم الأساسية اللازمة لتشغيل HHVM وNginx:

  • نظام تشغيل أوبنتو 14.04 (Ubuntu Trusty Tahr)

  • صلاحيات المستخدم الجذر (root) أو القدرة على استخدام sudo

  • خادم Nginx مثبت ومهيأ مسبقًا

  • وجود PHP مثبت (اختياري إذا كنت ترغب في التبديل بين PHP التقليدي وHHVM)

  • اتصال إنترنت لتحميل الحزم والمستودعات


تحديث النظام وتجهيز البيئة

من الضروري تحديث النظام والحزم لضمان الاستقرار أثناء التثبيت:

bash
sudo apt-get update sudo apt-get upgrade -y

تأكد من تثبيت الأدوات الأساسية لبناء البرمجيات:

bash
sudo apt-get install software-properties-common -y sudo apt-get install curl git -y

إضافة مستودع HHVM الرسمي

نظرًا لأن نظام أوبنتو 14.04 قديم نسبيًا، فإن حزم HHVM ليست متاحة بشكل مباشر في مستودعات النظام الافتراضية. لذلك، يتم إضافة المستودع الرسمي الخاص بـ HHVM لتثبيت الإصدار المناسب.

أولًا، إضافة مفتاح المستودع:

bash
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -

ثانيًا، إضافة مستودع HHVM:

bash
sudo add-apt-repository 'deb http://dl.hhvm.com/ubuntu trusty main' sudo apt-get update

تثبيت HHVM

بعد تحديث قائمة الحزم مع المستودع الجديد، يمكن تثبيت HHVM عبر الأمر:

bash
sudo apt-get install hhvm -y

يتضمن هذا التثبيت كافة الأدوات اللازمة لتشغيل HHVM كخادم تنفيذي، بالإضافة إلى ملفات التهيئة.


ضبط HHVM للعمل كخدمة

لتشغيل HHVM كخدمة على النظام يمكن استخدام الأمر:

bash
sudo /usr/share/hhvm/install_fastcgi.sh

هذا السكربت يقوم بضبط HHVM ليعمل في وضع FastCGI، وهي الطريقة التي تتيح لخادم Nginx التواصل مع HHVM بشكل فعال عبر بروتوكول FastCGI.

يمكن التأكد من أن الخدمة تعمل عبر:

bash
sudo service hhvm start sudo service hhvm status

في حال رغبت بإيقاف الخدمة:

bash
sudo service hhvm stop

ضبط Nginx للعمل مع HHVM

لجعل Nginx يوجه طلبات PHP إلى HHVM، يجب تعديل ملف إعدادات الخادم الخاص بـ Nginx. عادةً ما يكون ملف إعدادات الموقع الافتراضي موجودًا في:

bash
/etc/nginx/sites-available/default

أو يمكن إنشاء ملف إعداد جديد حسب الحاجة.

إعداد كتلة الخادم (server block)

يجب تعديل إعدادات Nginx لتوجيه الطلبات التي تنتهي بامتداد .php إلى HHVM عبر FastCGI. المثال التالي يوضح كيفية إعداد ذلك:

nginx
server { listen 80; server_name your_domain_or_ip; root /var/www/html; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_keep_conn on; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

في هذا الإعداد، يتم توجيه طلبات ملفات PHP إلى منفذ 9000 على localhost، حيث يعمل HHVM في وضع FastCGI.


إعادة تشغيل Nginx لتطبيق الإعدادات

بعد تعديل ملف إعدادات Nginx يجب إعادة تشغيل الخادم ليأخذ التغييرات بعين الاعتبار:

bash
sudo service nginx restart

التحقق من عمل HHVM مع Nginx

للتأكد من أن HHVM يعمل بشكل صحيح مع Nginx، يمكن إنشاء ملف PHP بسيط داخل مجلد الموقع الجذر /var/www/html:

php
phpinfo(); ?>

حفظ الملف باسم info.php ثم الوصول إليه عبر المتصفح باستخدام:

arduino
http://your_domain_or_ip/info.php

يجب أن تظهر صفحة تحتوي على معلومات PHP التي يشغلها HHVM، ويمكن ملاحظة في رأس الصفحة أو في الجزء الخاص بالمحرك أنه HHVM وليس PHP التقليدي.


تحسين أداء HHVM وNginx

لتعزيز الأداء وضمان استقرار النظام، هناك عدة خطوات وإعدادات يمكن اتباعها:

1. ضبط إعدادات HHVM

ملف التهيئة الرئيسي لـ HHVM يوجد عادة في:

bash
/etc/hhvm/server.ini

أو

bash
/etc/hhvm/php.ini

يمكن ضبط بعض الخيارات المهمة مثل:

  • hhvm.server.thread_count لتحديد عدد خيوط المعالجة (Threads) بحسب عدد أنوية المعالج.

  • hhvm.repo.central.path لتحديد موقع قاعدة بيانات الكود المترجم.

  • إعدادات الذاكرة المؤقتة (Cache) لضمان استجابة أفضل.

2. ضبط إعدادات Nginx

  • تفعيل التخزين المؤقت للملفات الثابتة.

  • ضبط عدد الاتصالات المتزامنة وقيم timeout.

  • استخدام gzip لضغط البيانات المرسلة لتقليل حجم النقل.


ملخص إعدادات الجدول المقارنة بين PHP التقليدي و HHVM

الميزة PHP التقليدي HHVM
سرعة التنفيذ جيدة عالية جدًا بفضل تقنية JIT
استهلاك الذاكرة متوسط أقل نسبيًا مع أداء أفضل
دعم الإضافات متوفر على نطاق واسع محدود بعض الشيء
التوافق مع PHP كامل عالي لكن بعض الإصدارات القديمة قد تحتوي على اختلافات
دعم لغات أخرى لا يدعم Hack (لغة مشتقة من PHP)
الاستخدام مع Nginx عبر FastCGI عبر FastCGI

مشاكل شائعة وحلولها أثناء التثبيت

  • عدم استجابة HHVM على المنفذ 9000: التأكد من تشغيل الخدمة عبر service hhvm status، والتأكد من عدم حظر المنفذ من جدار الحماية.

  • ظهور صفحة PHP التقليدية بدل HHVM: التأكد من أن إعدادات Nginx توجه فعليًا طلبات PHP إلى HHVM عبر المنفذ الصحيح.

  • أخطاء في ملفات التهيئة: مراجعة ملفات /etc/hhvm/server.ini و /etc/nginx/sites-available/default للتأكد من خلوها من الأخطاء النحوية.

  • عدم توافق بعض الإضافات مع HHVM: مراجعة الوثائق الرسمية لـ HHVM لمعرفة دعم الإضافات والتحديثات.


تحديث HHVM

بما أن أوبنتو 14.04 قديم، فمن الأفضل مراقبة تحديثات HHVM عبر المستودع الرسمي. يمكن تحديث الحزمة بواسطة:

bash
sudo apt-get update sudo apt-get upgrade hhvm

خاتمة

يُعد تثبيت HHVM وضبطه للعمل مع Nginx على نظام أوبنتو 14.04 خطوة فعالة لتحقيق أداء عالي لتطبيقات PHP، خاصة تلك التي تعتمد على الأعباء الثقيلة أو تتطلب استجابة سريعة. باتباع الخطوات الدقيقة الموضحة، مع الانتباه إلى ضبط الإعدادات والتحديثات، يمكن الحصول على بيئة استضافة قوية وموثوقة تدعم تطبيقات الويب الحديثة بكفاءة عالية.


المراجع